package com.ideaaedi.zoo.example.springboot.sse;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
 * 示例：在底座zoo-foundation上集成zoo-diy-artifact-sse
 */
@SpringBootApplication
public class ExampleSpringbootSseApplication {
    
    public static void main(String[] args) {
        ///// 如果你想修改sse消息通知使用的topic名称，那么可以这样处理
        ///DistributedSseMsgProvider.REDIS_SSE_MSG_NOTIFY_TOPIC_HOLDER.setValue(
        ///        "zooboot" + ":" + DistributedSseMsgProvider.REDIS_SSE_MSG_NOTIFY_TOPIC_HOLDER.getValue()
        ///);
        SpringApplication.run(ExampleSpringbootSseApplication.class, args);
        System.err.println();
        System.err.println();
        System.err.println(
                """
                【基础功能测试】启动项目后，可通过
                   1. 浏览器访问 http://localhost:8080/demo 直接访问测试
                   2. 浏览器打开 src/main/resources/sse/基础/sse-demo.html 代码链接测试
                   3. 浏览器打开 src/main/resources/sse/基础/sse-demo-with-header.html 代码传递请求头测试
                   
                【实战功能测试】分别以8080、8081端口分别启动项目（模拟多实例的情况）：
                   1. 浏览器打开 src/main/resources/sse/实战/sse-demo-with-header-user1.html，他会与8080实例保持长连接
                   2. 浏览器打开 src/main/resources/sse/实战/sse-demo-with-header-user2.html，他会与8081实例保持长连接
                   3. 浏览器访问以下两个地址，调用8080实例的
                          http://localhost:8080/demo-2-push?recipientUserId=1
                          http://localhost:8080/demo-2-push?recipientUserId=2
                      接口，验证：通过8080实例给8080实例上的长连接发送消息、通过8080实例给8081实例上的长连接发送消息
                           观察：sse-demo-with-header-user1.html是否收到消息、sse-demo-with-header-user2.html是否收到消息
                """
        );
        System.err.println();
        System.err.println();
        System.err.println();
        System.err.println();
    }
    
}
